package com.xnew.entity.memberArchives;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.xnew.bean.common.FileInfo;
import org.springframework.data.annotation.Transient;

import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
* @Author: Zhozh
* @Description: 投资评级公司资格信息
* @DateTime: 2022/3/29
* @Params:
* @Return
*/

@TableName("t10_qlfy_info")
public class QlfyInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
    * 资格信息编号
    */
    @TableId("qlfy_info_no")
    private String qlfyInfoNo;

    /**
    * 有效期类型编码
    */
    private String valdtTypeCode;

    /**
    * 信息报送审核状态编码
    */
    private String infsubAuditStatusCode;


    /**
     * 许可证类型编码
     */
    private String licsTypeCode;

    /**
    * 机构用户编号
    */
    private String orgUserNo;

    /**
    * 信息录入时间
    */
    private String infoInputTime;

    /**
    * 资格信息更新时间
    */
    private String qlfyInfoUpdateTime;

    /**
    * 许可证号码
    */
    private String licsNo;

    /**
    * 许可证文号
    */
    private String licsNmb;

    /**
    * 许可证类型详情
    */
    private String licsTypeDetail;

    /**
    * 许可证内容其他
    */
    private String licsContent;

    /**
    * 批准部门名称
    */
    private String aprvDeptName;

    /**
    * 批准日期
    */
    private String aprvDate;

    /**
    * 有效开始日期
    */
    private String vldStartDate;

    /**
    * 有效结束日期
    */
    private String vldEndDate;

    /**
    * 信息录入人编号
    */
    private String infoInputPsnNo;

    /**
    * 资格信息更新人编号
    */
    private String qlfyInfoUpdatePsnNo;

    /**
    * 是否关闭状态
    */
    private String isCloseStatus;

    @TableField(exist = false)
    private List<FileInfo> fileList;

    /**
     * 审核日志
     */
    @TableField(exist = false)
    private List<AuditLog> auditLogList;

    @TableField(exist = false)
    private List<MemInfoChgHist> histList;

    public List<AuditLog> getAuditLogList() {
        return auditLogList;
    }

    public void setAuditLogList(List<AuditLog> auditLogList) {
        this.auditLogList = auditLogList;
    }


    public QlfyInfo() {
    }

    public QlfyInfo(String qlfyInfoNo, String valdtTypeCode, String infsubAuditStatusCode, String licsTypeCode,
                    String orgUserNo, String infoInputTime, String qlfyInfoUpdateTime, String licsNo, String licsNmb,
                    String licsTypeDetail, String licsContent, String aprvDeptName, String aprvDate,
                    String vldStartDate, String vldEndDate, String infoInputPsnNo, String qlfyInfoUpdatePsnNo,
                    String isCloseStatus, List<FileInfo> fileList, Map<String, Object> dictNameResult) {
        this.qlfyInfoNo = qlfyInfoNo;
        this.valdtTypeCode = valdtTypeCode;
        this.infsubAuditStatusCode = infsubAuditStatusCode;
        this.licsTypeCode = licsTypeCode;
        this.orgUserNo = orgUserNo;
        this.infoInputTime = infoInputTime;
        this.qlfyInfoUpdateTime = qlfyInfoUpdateTime;
        this.licsNo = licsNo;
        this.licsNmb = licsNmb;
        this.licsTypeDetail = licsTypeDetail;
        this.licsContent = licsContent;
        this.aprvDeptName = aprvDeptName;
        this.aprvDate = aprvDate;
        this.vldStartDate = vldStartDate;
        this.vldEndDate = vldEndDate;
        this.infoInputPsnNo = infoInputPsnNo;
        this.qlfyInfoUpdatePsnNo = qlfyInfoUpdatePsnNo;
        this.isCloseStatus = isCloseStatus;
        this.fileList = fileList;
        this.dictNameResult = dictNameResult;
    }

    public List<MemInfoChgHist> getHistList() {
        return histList;
    }

    public void setHistList(List<MemInfoChgHist> histList) {
        this.histList = histList;
    }

    public List<FileInfo> getFileList() {
        return fileList;
    }

    public void setFileList(List<FileInfo> fileList) {
        this.fileList = fileList;
    }

    public String getQlfyInfoNo() {
        return qlfyInfoNo;
    }

    public void setQlfyInfoNo(String qlfyInfoNo) {
        this.qlfyInfoNo = qlfyInfoNo;
    }

    public String getValdtTypeCode() {
        return valdtTypeCode;
    }

    public void setValdtTypeCode(String valdtTypeCode) {
        this.valdtTypeCode = valdtTypeCode;
    }

    public String getInfsubAuditStatusCode() {
        return infsubAuditStatusCode;
    }

    public void setInfsubAuditStatusCode(String infsubAuditStatusCode) {
        this.infsubAuditStatusCode = infsubAuditStatusCode;
    }

    public String getLicsTypeCode() {
        return licsTypeCode;
    }

    public void setLicsTypeCode(String licsTypeCode) {
        this.licsTypeCode = licsTypeCode;
    }

    public String getOrgUserNo() {
        return orgUserNo;
    }

    public void setOrgUserNo(String orgUserNo) {
        this.orgUserNo = orgUserNo;
    }

    public String getInfoInputTime() {
        return infoInputTime;
    }

    public void setInfoInputTime(String infoInputTime) {
        this.infoInputTime = infoInputTime;
    }

    public String getQlfyInfoUpdateTime() {
        return qlfyInfoUpdateTime;
    }

    public void setQlfyInfoUpdateTime(String qlfyInfoUpdateTime) {
        this.qlfyInfoUpdateTime = qlfyInfoUpdateTime;
    }

    public String getLicsNo() {
        return licsNo;
    }

    public void setLicsNo(String licsNo) {
        this.licsNo = licsNo;
    }

    public String getLicsNmb() {
        return licsNmb;
    }

    public void setLicsNmb(String licsNmb) {
        this.licsNmb = licsNmb;
    }

    public String getLicsTypeDetail() {
        return licsTypeDetail;
    }

    public void setLicsTypeDetail(String licsTypeDetail) {
        this.licsTypeDetail = licsTypeDetail;
    }

    public String getLicsContent() {
        return licsContent;
    }

    public void setLicsContent(String licsContent) {
        this.licsContent = licsContent;
    }

    public String getAprvDeptName() {
        return aprvDeptName;
    }

    public void setAprvDeptName(String aprvDeptName) {
        this.aprvDeptName = aprvDeptName;
    }

    public String getAprvDate() {
        return aprvDate;
    }

    public void setAprvDate(String aprvDate) {
        this.aprvDate = aprvDate;
    }

    public String getVldStartDate() {
        return vldStartDate;
    }

    public void setVldStartDate(String vldStartDate) {
        this.vldStartDate = vldStartDate;
    }

    public String getVldEndDate() {
        return vldEndDate;
    }

    public void setVldEndDate(String vldEndDate) {
        this.vldEndDate = vldEndDate;
    }

    public String getInfoInputPsnNo() {
        return infoInputPsnNo;
    }

    public void setInfoInputPsnNo(String infoInputPsnNo) {
        this.infoInputPsnNo = infoInputPsnNo;
    }

    public String getQlfyInfoUpdatePsnNo() {
        return qlfyInfoUpdatePsnNo;
    }

    public void setQlfyInfoUpdatePsnNo(String qlfyInfoUpdatePsnNo) {
        this.qlfyInfoUpdatePsnNo = qlfyInfoUpdatePsnNo;
    }

    public String getIsCloseStatus() {
        return isCloseStatus;
    }

    public void setIsCloseStatus(String isCloseStatus) {
        this.isCloseStatus = isCloseStatus;
    }


    @Transient
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @TableField(exist = false)
    private Map<String, Object> dictNameResult = new HashMap<String, Object>();

    public Map<String, Object> getDictNameResult() {
        return dictNameResult;
    }

    public void setDictNameResult(Map<String, Object> dictNameResult) {
        this.dictNameResult = dictNameResult;
    }

    //数据字典
    @Transient
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public String[] buildIncludeField(){
        return new String[]{"infsubAuditStatusCode","valdtTypeCode","licsTypeCode","isCloseStatus","auditLogList"};
    }

    /*数据字典*/
    @Transient
    @JsonInclude(JsonInclude.Include.NON_NULL)
    public String[] buildIncludeType(){
        return new String[]{"DG0149","DG0104","DG0154","DG0104","LIST"};
    }
}